約 4,281,325 件
https://w.atwiki.jp/abwiki/pages/64.html
名称 |Time$ 読み |タイムドル 定義 |Time$() As String 説明 |時間を求めます。 N88BASICのように時間の変更はできましぇん 戻り値 |時間が"HH MM SS"の文字列で返ります。 参照 |Date$
https://w.atwiki.jp/ra_activebasic/pages/11.html
コメントプラグイン @wikiのwikiモードでは #comment() と入力することでコメントフォームを簡単に作成することができます。 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_60_ja.html たとえば、#comment() と入力すると以下のように表示されます。 名前 コメント
https://w.atwiki.jp/ra_activebasic/pages/9.html
@wikiにはいくつかの便利なプラグインがあります。 アーカイブ コメント ニュース 動画(Youtube) 編集履歴 関連ブログ これ以外のプラグインについては@wikiガイドをご覧ください = http //atwiki.jp/guide/
https://w.atwiki.jp/tpc-document/pages/279.html
第20章「Terminus for Story(後日談)」 あらゆる予測不可能な事象、あらゆる出会い、そして精神と機械。 これらは舞台上で脚本なしで役者が演じるほど奇怪でぎこちなく、そして感情を呼び起こすものであった。しかしこの舞台にも脚本家は存在し、脚本どおりに事が運んだとは彼らが知る由もない。その脚本家はゲンダー達の存在を最も必要としていたがために、自身の立場と技量を駆使してここまで彼らを導いたのである。 『違うかね? 例え眠りについても精神とは在り続けるもの』 しかしここからは脚本通りに進むことはない。なぜなら彼らは自由を自らの手で掴み取ったからだ。 『これからは彼らの時代。私にはできなかったことを、彼らはやり遂げてくれた。科学という中での発展はもはや限界を迎えた。私の不幸はこの時代に生まれたことだった。だが次の時代ならば、希望を持って私はそれを彼らに託そう。さあ……私はもう疲れた。私は再び悠久の眠りに就くことにしよう。そろそろ彼らの声を聞いてやってくれ』 焦土と化した戦場跡にゲンダーは一人佇んでいた。 あの戦いから数日が経過した。破損した身体はガイストに直してもらい、こうして今は一人で立つことができる。 二度と意識が戻ることのなくなったヴェルスタンド大統領アドルフ・ルートヴィッヒは、ゲーヒルン中枢タワーで起こった謎の爆発事故が原因で事故死したと公式的には発表され、世間を大きく騒がせた。 大統領執務室の壁に空けられた大きな穴。また精神兵器『蟹』の残骸がすぐ近くから発見されたことから、ヴェルスタンド軍大将フリードリヒ・ヴェトレイが大統領の座を狙ってクーデターを起こしたのではないか、という説もまことしやかに囁かれたが、当のフリードリヒも行方不明とのこともあって、とうとう真実が明らかになることはなかった。 現在ヴェルスタンド、マキナともに国の立て直しに注力している状況であり、フィーティンは同盟国であるマキナに支援を惜しまなかったが、大統領が空席となり事実上代表が変わったヴェルスタンドもまたフィーティンの支援を受けることとなった。これを契機に大陸三国の関係が改善されていけば、と人々は願う。 「これで……良かったんダよな、メイヴ?」 ゲンダーは空に向かって語りかける。 波動砲を発射して、その反動に耐え切れず粉々に散ってしまったメイヴ。その姿の消えた中空をじっと見つめる。あれからもう何日も経っているのに、今でもその最期の瞬間が目に焼きついて離れない。 ヘイヴの望みだったブラックボックスの管理はガイストに引き継がれた。ガイストならそれを悪用することはないだろうことはゲンダーもよく知っているし、かつてヘイヴとともに黒石を研究していたスヴェンもサポートしてくれるだろう。そしてメイヴ自身の望みでもあったゲンダーを尊守という大目的も果たされた。戦争も終わった。 ただゲンダーの『メイヴを護る』という目的だけは果たされることはなかった。 「ゲンダー、またここにいたのか」 声をかけたのはガイストだった。 「メイヴのことは本当に残念だった。けれど、そのおかげでこうして今があるんだ」 「ああ……オレもそれには感謝してる。でもなんでメイヴが犠牲にならなくちゃならなかったんダ。何か他に方法はあったんじゃないか。そう思えてならないんダ」 「その気持ちはわかる。しかしいつまでも過去に縛られてちゃいけない。僕たちは前に進まなくては。きっとメイヴだってそう言うと思うぞ」 「それはわかってるつもりなんダが……どうも気持ちの整理がつかなくてな。オレはメイヴを護るためにこれまで闘ってきた。そのメイヴが失われた今、オレはどうすればいいんダろうと思ってな」 「やれやれ、またそれか。たしかに君は機械だ。機械は指示を与えられないと動けない。でも君には心がある。心があれば物事を考え、そして感じることができる。それならば、君が思うままに行動すればそれでいい。間違ってるかどうかをあれこれ考えるのはそのあとでいいんだ。できるかどうじゃなくて『やる』んだ。そうだろう?」 「それはそうなんダが…」 「ほら、元気を出せよ。そんな様子じゃ、メイヴが還ってきたときに笑われるぞ」 「…………えっ? 今、何て言った?」 「実はね、ブラックボックスの解析を進めていて、その中にメイヴのバックアップデータが残されていることがわかったんだ。メイヴからブラックボックスを取り外す直前のものだ。解析を進めないとまだそのデータを抽出することはできないけど、いずれ必ず実現してみせる。そうすれば…」 「メイヴが復活するのか!!」 沈んでいたゲンダーの表情が見る見るうちに明るくなっていく。 「ああ、そうさ。失われたものは戻らないけど、僕らはまたそれを創り直すことができる。メイヴそのものを創ることは僕にはできないが、メイヴの新しい胴体を用意する技術ならある。そこにメイヴのバックアップを適用してやればまたメイヴに会えるさ」 「それは本当か! ……ああ、メイヴ。良かった……本当に良かった……」 「まだまだマキナの復興には時間がかかるし、物資も不足している。僕たちの個人的な理由でそれを遅らせていいことにはならないから、すぐにメイヴを復活させられるわけじゃない。でもいつの日か必ず、僕の手でメイヴを蘇らせてみると約束するよ。ゲンダー、僕を信じてくれるか?」 「ああ、もちろんダ!」 二人は互いに力強く手を取り合った。 こうして、後にマキナ-ヴェルスタンド戦争と呼ばれた戦いは終わった。 その戦いの影に小さな勇者たちの努力があったことを知る者はそう多くない。 そして彼らは、それぞれの道を歩み始めるのであった―― 機械都市の頭脳:スヴェン 戦争で荒れ果てたマキナの復興に尽力する。潜水飛行艇の『鯨』も実用化され、資材の搬送や人員の運搬にと大活躍している 精神の科学者:ガイスト マキナに帰属しスヴェンの研究所を借りてブラックボックスの研究に力を入れる。かつての精神体の研究はこの奇妙な物体の謎の解明に役立っているという 陽気な「罪」:グメーシス たたかいのあと、人知れずその姿を消した。噂では旅に出たゲンダーのあとを追いかけて行ったのだとか パンドラの箱:メイヴ 『大鯰』との最終決戦で儚くも美しく散る。彼の意志は戦争から人々を救った。その心はともに歩んだ仲間たちに今も引き継がれている 仙人掌の勇者:ゲンダー マキナ復興に協力した後に、メイヴが還ってくるその日まで自分を磨くために一人旅に出た。遠く離れた土地で自らの意思を持つ感情豊かな機械が活躍したという伝説が後世に数多く残されている ブラックボックス 完 フローティア2『ブラックボックス』
https://w.atwiki.jp/abwiki/pages/367.html
/***********************************************************e.c -- 自然対数の底***********************************************************/Function ee() As DoubleDim n As LongDim e, a, preve = 0 a = 1 n = 1Doprev = e e = e + a a = a / n n=n+1Loop while (e prev)ee = eEnd Function#N88BASICPrint ee()
https://w.atwiki.jp/abwiki/pages/40.html
(4.24と比べて)4.23の方が安定度高いんじゃないかなと思うけどどう思う? 選択肢 投票 はい (47) いいえ (58) 再試行 (49) 好きなAKB48メンバー 選択肢 投票 倉持明日香 (17) 小嶋陽菜 (12) 高橋みなみ (5) 中田ちさと (10) 板野友美 (15) 仁藤萌乃 (32) 藤江れいな (10) 宮澤佐江 (5) 柏木由紀 (11) 北原里英 (5) 佐藤すみれ (10) 近野莉菜 (5) 島崎遥香 (5) 山内鈴蘭 (5) DD (10) その他 (12) よく使う言語 選択肢 投票 BCPL (5) COBOL (10) N88-BASIC (10) N88-日本語BASIC (5) Quick Basic (5) BASIC/98 (5) ファミリーベーシック (6) GAME BASIC for SEGASATURN (5) VBScript (6) PASCAL (10) Ada (5) Whitespace (6) D言語 (5) その他 (51) 尊敬する人 選択肢 投票 福沢諭吉さん (4) 新渡戸稲造さん (1) 樋口一葉さん (2) 夏目漱石さん (3) 野口英世さん (3) 荘口彰久さん (4) 橋本明子さん (1) 特宗清さん (4) その他の人 JAVA -- 上田裕也 (2010-02-23 22 58 16) g++のversion 3 -- k (2010-03-04 16 37 16) HSP! HSP! -- ガンブラー被害 (2010-03-06 00 13 05) みけCAT -- Perl (2010-03-14 08 23 44) ↑逆だ -- みけCAT (2010-03-14 08 24 10) WSH -- AB (2010-03-26 02 13 14) N88 N ASIC ってなんだw -- ばばば (2010-06-01 11 00 11) ↑修正しました -- 名無しさん (2010-06-11 07 51 51) Delphi=Pascalに含まれる -- ガンブラー被害 (2010-06-25 19 34 57) Cとなでしこ -- なでしこ好き (2011-01-23 17 52 06) なんで仁藤が一番なん?まりやんぬいれろよ -- キャラメルクラッチ (2011-02-06 12 40 15) HSP -- 名無しさん (2012-03-01 11 45 26) 名前 コメント
https://w.atwiki.jp/abwiki/pages/138.html
スレッドの基本 スレッドの生成はCreateThread関数で行う。 スレッドは引数を1つだけもつ関数にする。 名前は何でもいい。 スレッドは戻り値を持っていて、GetExitCodeThreadで調べることができる。 スレッドの終を待つにはWaitFor〇〇関数を使うと良いかも。 #N88BASICDim hT As HANDLEDim id As DWordhT = CreateThread(ByVal 0, 0, AddressOf(t), 5, 0, Varptr(id))WaitForSingleObject(hT, INFINITE)CloseHandle(hT)Print "スレッドは正しく終了しました"Function t(a As DWordPtr) As LongPrint aEnd Function このようにサブスレッドを作るのは簡単なんだけど、スレッド間の同期や、終了にかかあるタイミングがおかしいと、不具合のもとになる。 1CPUマシン上では、マルチスッドレは速くならない。速くなるケースは、マルチコアCPUで、かつスレッドの実際の処理がスレッドの生成や同期にかかるコストより大きくないといけない。 ウインドウプロシージャのような、場合、長大な処理をウインドウプロシージャでやると、フリーズするので、マルチスレッドにすることで、処理がすぐにカエルので、フリーズ対策になる。 つまり、Windowsのイベント処理やメッセージ処理をスレッド毎に分ける事で、1CPUでもプログラム上のメリットがあるという事。 Windows環境でスレッドを扱う場合、Win32API,C Runtime,MFCの三つの選択がある。 このうちab4では前者二つについて利用可能だろう。Win32API=CreateThread()、C Runtime=_beginthread()または_beginthreadex()である。 ※_beginthred()は呼出規約が非対応なため使えない スレッドを使う場合、スレッド内部で競合が発生すると関数を使う事が出来ない。 典型的な例はPrint文で、複数のスレッドがPrint命令を同時に実行しようとするときちんと動作しない。 これはI/Oに関する競合から起こる為だが、場合によっては計算を主とする関数でも発生する可能性はある。 正しい結果が得られないという事になる。 複数のスレッドを実行しても問題ないように設計されている関数やライブラリを、スレッドセーフである、と言う。 abに含まれる関数やライブラリはスレッドセーフを保証している訳ではないので、もしスレッド内でabの関数を 同時実行しようとすると問題が生じる可能性がある。その場合は適切に競合を回避する排他制御を 実装する(クリティカルセクション)か、スレッドセーフであるCランタイムライブラリを用いる必要があるかもしれない。 Cランタイムを利用する場合は、Win32APIのCreateThreadではなく、_beginthreadexを用いる必要がある。(AB4以前の場合) CreateThreadではCランタイムに対応していない為、例外が発生する可能性がある。 なお、開発中のAB5のThreadクラスはbeginthreadを使っている様子なので、CランタイムDLLを用いてスレッドセーフ な関数を利用可能であろう。(AB5はcdecl呼び出し規約を使える!) _beginthreadexの使用例 #console'スレッドのてすとDeclare Function _beginthreadex CDECL Lib "msvcrt" _ (ByRef lpThreadAttributes As SECURITY_ATTRIBUTES, _ dwStackSize As DWord, _ lpStartAddress As DWord, _ lpParameter As VoidPtr, _ dwCreationFlags As DWord, _ lpThreadId As DWordPtr) As HANDLEDeclare Sub _endthreadex CDECL Lib "msvcrt" (exitcode As DWord)Declare Function getchar CDECL Lib "msvcrt" () As LongFunction sureddo(arg As *DWord)Print "sureddo"_endthreadex(55555)End FunctionDim handoru As DWord, co As DWordhandoru = _beginthreadex(ByVal 0, 0, AddressOf(sureddo), 0, 0, 0)'CreateThreadと引数は同じ。WaitForSingleObject(handoru, 3333)GetExitCodeThread(handoru, co)CloseHandle(handoru)Print "スレッドの終了コードは";co;"であります"Print "キーイン待ち"getchar() クリティカルセクション クリテカルセクションは、複数のスレッドがひとつのデータを扱うときに向いた同期の方法。 クリティカルセクションは一人しか入れない部屋のようなもので、 誰かがそこに入るとあとから来たものはそいつが出るまで待機しないといけない。 要は無理やりFIFOな環境を作るわけ。 このコードはファイルにSinとCosの値を0°から90°まで書くだけなんだけど マルチスッドレでやっているから(しかも文字列バッファも共有!)どうなるか全く予想できない。 5行目の#define DOUKIをコメントすることで同期を使わない。 Declare Function WaitForMultipleObjects Lib"kernel32"(c As Word, pobj As *HANDLE, waitall As Long, ms As DWord) As DWordDeclare Function sprintf CDECL Lib"msvcrt"(buf As *Byte, fmt As *Byte, ...) As DWord#N88BASIC#define DOUKIDim hT[ELM(2)] As HANDLEDim id As DWordDim hF As HANDLEDim mes[666] As ByteDim w As DWordDim cs As CRITICAL_SECTIONInitializeCriticalSection(cs)hF = CreateFile("sincos.txt", GENERIC_WRITE, 0, ByVal 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0)hT[0] = CreateThread(ByVal 0, 0, AddressOf(sint), 0, 0, Varptr(id))hT[1] = CreateThread(ByVal 0, 0, AddressOf(cost), 0, 0, Varptr(id))WaitForMultipleObjects(2, hT, TRUE, INFINITE)CloseHandle(hT[0])CloseHandle(hT[1])CloseHandle(hF)DeleteCriticalSection(cs)Print "スレッドは正しく終了しました"'スレッド関数その1Function sint(a As DWordPtr) As LongDim n As DWord#ifdef DOUKIEnterCriticalSection(cs)#endifFor n=0 To 90sprintf(mes, Ex"sin%2d = %6.4f\r\n", n, Sin(ToRad(n)))WriteFile(hF, mes, lstrlen(mes), VarPtr(w), ByVal 0)Next#ifdef DOUKILeaveCriticalSection(cs)#endifExitThread(TRUE)End Function'スレッド関数その2Function cost(a As DWordPtr) As LongDim n As DWord#ifdef DOUKIEnterCriticalSection(cs)#endifFor n=0 To 90sprintf(mes, Ex"cos%2d = %6.4f\r\n", n, Cos(ToRad(n)))WriteFile(hF, mes, lstrlen(mes), VarPtr(w), ByVal 0)Next#ifdef DOUKILeaveCriticalSection(cs)#endifExitThread(TRUE)End Function'ラジアン変換Function ToRad(d As Double) As DoubleToRad = d * 3.1416 /180.000End Function セマフォ セマフォは同時に動くスレッドの上限を決めることができる。 わかりやすく言えばダウンローダーの同時接続数の制限ができるってこと。 最初にCreateSemaphore関数で初期カウントと最大カウントを決定。 ReleaseSemaphore関数でカウンタを増やす。 WaitForなんとか関数でカウンタが減る。 カウンタが0以上ならシグナル状態で0なら非シグナル状態になる。 Declare Function WaitForMultipleObjects Lib"kernel32"(c As Word, pobj As *HANDLE, waitall As Long, ms As DWord) As DWordDeclare Function CreateSemaphore Lib"kernel32" Alias "CreateSemaphoreA" (sa As VoidPtr, iv As Long, mv As Long, na As *Byte) As HANDLEDeclare Function ReleaseSemaphore Lib"kernel32" (hs As HANDLE, dec As Long, p As *DWord) As HANDLE#N88BASICConst MAXTHREAD = ELM(10)Dim hT[MAXTHREAD] As HANDLEDim hS As HANDLEDim id As DWordDim i As LongDim count As QWordDim cs As CRITICAL_SECTIONInitializeCriticalSection(cs)hS = CreateSemaphore(0, 3,3,"平井公彦")For i=0 To MAXTHREADhT[i] = CreateThread(ByVal 0, 0, AddressOf(test), i, 0, Varptr(id))NextWaitForMultipleObjects(MAXTHREAD+1, hT, TRUE, INFINITE)For i=0 To MAXTHREADCloseHandle(hT[i])NextDeleteCriticalSection(cs)Print "スレッドは正しく終了しました"'スレッド関数Function test(id As *DWord) As DWordDim ipv6 As DWordWaitForSingleObject(hS ,INFINITE)EnterCriticalSection(cs)ipv6=idcount++Print "スレッド[";ipv6;"]開始",countLeaveCriticalSection(cs)Sleep(2580)EnterCriticalSection(cs)count--Print "スレッド[";ipv6;"]終了",countLeaveCriticalSection(cs)ReleaseSemaphore(hS,1, NULL) End Function イベント
https://w.atwiki.jp/abwiki/pages/177.html
正接(タンジェント)の級数展開など種々の展開式の係数となる重要な数。 #N88BASIC'最大公約数(the greatest common divisor)を求める関数Function gcd(x As Double, y As Double) As DoubleDim t As DoubleWhile y 0t = fmod(x, y)x = yy = tWendgcd = xEnd Function'浮動小数点剰余を求めるFunction fmod(x As Double, y As Double) As DoubleDim i As DWordIf y = 0 Thenfmod = 0Exit FunctionEnd Ifi = Int(x / y)fmod = x - i * yEnd Function'計算機イプシロン(1 + eps =1 を満たさない最小の正の値)Const SGL_EPSILON = 2.2204460492503e-16Const DBL_EPSILON = 2.2204460492503e-16Const N = 40Dim i As IntegerDim n As IntegerDim q As DoubleDim b1 As DoubleDim b2 As DoubleDim d As DoubleDim t[N + 1] As Doubleq = 1t[1] = 1For n = 2 To NFor i = 1 To n - 1t[i - 1] = i * t[i]Next it[n - 1] = 0For i = n To 2 Step -1t[i] = t[i] + t[i - 2]Next iIf (n mod 2) = 0 Thenq = q * 4b1 = n * t[0]b2 = q * (q - 1)If (b1 1 / DBL_EPSILON) And (b2 1 / DBL_EPSILON) Thend = gcd(b1, b2)b1 = b1 / db2 = b2 / dPrint "| B("; n; " | ="; b1; "/"; b2ElsePrint "| B("; n; " | ="; b1 / b2End IfEnd IfNext n
https://w.atwiki.jp/nicorap_lyric/pages/738.html
投稿作品 TACTIVE/Break Fast Club feat.文鳥,野崎りこん,おちやめ,ちょろ,アーバン或るPecori
https://w.atwiki.jp/lookworld/pages/31.html
① インストールファイル(SpreadNET2Web_20050630.EXE)をダブルクリックしてから、インストールを行う。 ② Visual Studio .NET 2003にてVisual C#プロジェクトの「ASP.NET Webアプリケーション」を開く。 ③ 「ソリューションエクスプローラ - プロジェクト名 - 参照設定」にて右クリック→「参照の追加」を選択。 ④ 「.Net」タプを選択して、リストに表示された"FarPoint CalcEngine","FarPoint Excel Assembly","FarPoint Spread for Web Forms"三つのDLLを追加する。 ● Spreadシートのツールバー使用 Spreadにカーソルを合わせて、右クリック→「Spread デザイナ」を選択して、「スプレッド」の「コマンドバー」の「Visible」に“true”または“false”を設定することより、スプレッドのツールバーを表示・非表示にする。 コード記入例: FpSpread1.CommandBar.Visible = true; //ツールバーを表示する FpSpread1.CommandBar.Visible = false; //ツールバーを非表示する ● セルタイプの設定 Spreadにカーソルを合わせて、「Spread デザイナ」を選択して、「セル」の「CellType」を設定すると、チェックボックス、コンボボックスに変更ができる。 コード記入例: FarPoint.Web.Spread.CheckBoxCellType cktype = new FarPoint.Web.Spread.CheckBoxCellType(); FpSpread1.Sheets[0].Cells[0, 0].CellType = cktype; //第一行第一列にチェックボックス型を設定 FpSpread1.Sheets[0].Columns[0].CellType = cktype; //第一列にチェックボックス型を設定 ● Spreadシートへのデータ表示 スプレッド名.Sheets[0](複数のシートがある場合、”0”をインデックスに変更する。).SetValue(行番号,列番号,設定値); 或いは スプレッド名.ActiveSheetView.SetValue(行番号,列番号,設定値); コード記入例: FpSpread1.Sheets[0].SetValue(0, 0, "123456"); //第一行第一列に123456を設定する FpSpread1.ActiveSheetView.SetValue(0, 0, "123456"); //第一行第一列に123456を設定する